<html>
 <head>
  <meta charset="utf-8"/>
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"/>
  <title>
   Editor: R绘制中国地图，并展示流行病学数据  | 数螺 | NAUT IDEA
  </title>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" rel="stylesheet"/>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
  <style type="text/css">
   #xmain img {
                  max-width: 100%;
                  display: block;
                  margin-top: 10px;
                  margin-bottom: 10px;
                }

                #xmain p {
                    line-height:150%;
                    font-size: 16px;
                    margin-top: 20px;
                }

                #xmain h2 {
                    font-size: 24px;
                }

                #xmain h3 {
                    font-size: 20px;
                }

                #xmain h4 {
                    font-size: 18px;
                }


                .header {
	           background-color: #0099ff;
	           color: #ffffff;
	           margin-bottom: 20px;
	        }

	        .header p {
                  margin: 0px;
                  padding: 10px 0;
                  display: inline-block;  
                  vertical-align: middle;
                  font-size: 16px;
               }

               .header a {
                 color: white;
               }

              .header img {
                 height: 25px;
              }
  </style>
  <script src="http://cdn.bootcss.com/jquery/3.0.0/jquery.min.js">
  </script>
  <script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript">
   MathJax.Hub.Config({
          tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]},
          TeX: {equationNumbers: {autoNumber: "AMS"}}
        });
  </script>
  <script src="http://nautstatic-10007657.file.myqcloud.com/static/css/readability.min.js" type="text/javascript">
  </script>
  <script type="text/javascript">
   $(document).ready(function() {
                 var loc = document.location;
                 var uri = {
                  spec: "http://cos.name/2014/08/r-maps-for-china/",
                  host: "http://cos.name",
                  prePath: "http://cos.name",
                  scheme: "http",
                  pathBase: "http://cos.name/"
                 };
    
                 var documentClone = document.cloneNode(true);
                 var article = new Readability(uri, documentClone).parse();
     
                 document.getElementById("xmain").innerHTML = article.content;
                });
  </script>
  <!-- 1466463295: Accept with keywords: (title(0.25):数据,服务平台,地图,统计学,门户网站,中国,流行病学,绘制, topn(0.166666666667):市辖区,长沙市,地市,统计学,地理,地名,文件,边界,长沙,官方,可视化,文章,格式,绘制,多边形,函数,软件包,运算符,流行病学,专业,绘制地图,错误,数据,代码,地图,崇明县,区域,绘图,软件,上海市).-->
 </head>
 <body class="single single-post postid-10181 single-format-standard sidebar" onload="">
  <div class="header">
   <div class="container">
    <div class="row">
     <div class="col-xs-6 col-sm-6 text-left">
      <a href="/databee">
       <img src="http://nautidea-10007657.cos.myqcloud.com/logo_white.png"/>
      </a>
      <a href="/databee">
       <p>
        数螺
       </p>
      </a>
     </div>
     <div class="hidden-xs col-sm-6 text-right">
      <p>
       致力于数据科学的推广和知识传播
      </p>
     </div>
    </div>
   </div>
  </div>
  <div class="container text-center">
   <h1>
    Editor: R绘制中国地图，并展示流行病学数据
   </h1>
  </div>
  <div class="container" id="xmain">
   <div class="hfeed site" id="page">
    <header class="site-header" id="masthead" role="banner">
     <div id="cos-logo">
      <a href="http://cos.name/">
       <img src="http://cos.name/wp-content/themes/COS-kermesinus/images/headers/cos-logo.png"/>
      </a>
     </div>
     <div class="navbar" id="navbar">
      <nav class="navigation main-navigation" id="site-navigation" role="navigation">
       <h3 class="menu-toggle">
        菜单
       </h3>
       <a class="screen-reader-text skip-link" href="http://cos.name/2014/08/r-maps-for-china/#content" title="跳至内容">
        跳至内容
       </a>
       <div class="menu-%e6%88%91%e7%9a%84%e8%8f%9c%e5%8d%95-container">
        <ul class="nav-menu" id="menu-%e6%88%91%e7%9a%84%e8%8f%9c%e5%8d%95">
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-4746" id="menu-item-4746">
          <a href="http://cos.name">
           主页
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-8120" id="menu-item-8120">
          <a href="http://cos.name/cn">
           论坛
          </a>
          <ul class="sub-menu">
           <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8124" id="menu-item-8124">
            <a href="http://cos.name/cn/wp-login.php?action=register">
             论坛注册
            </a>
           </li>
           <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8125" id="menu-item-8125">
            <a href="http://cos.name/cn/wp-login.php">
             论坛登录
            </a>
           </li>
          </ul>
         </li>
         <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8110" id="menu-item-8110">
          <a href="http://cos.name/books/">
           图书资料
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8112" id="menu-item-8112">
          <a href="http://cos.name/videos">
           视频教程
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8333" id="menu-item-8333">
          <a href="http://cos.name/salon/">
           统计沙龙
          </a>
         </li>
         <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8111" id="menu-item-8111">
          <a href="http://cos.name/chinar/">
           R语言会议
          </a>
         </li>
         <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8109" id="menu-item-8109">
          <a href="http://cos.name/training/">
           讲座与培训
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8115" id="menu-item-8115">
          <a href="http://cos.name/cn/forum/comprehensive/job/">
           招聘信息
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-4780" id="menu-item-4780">
          <a href="http://cos.name/about">
           关于我们
          </a>
          <ul class="sub-menu">
           <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8113" id="menu-item-8113">
            <a href="http://cos.name/2008/11/how-to-work-with-cos/">
             加入我们
            </a>
           </li>
           <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8119" id="menu-item-8119">
            <a href="http://cos.name/donate/">
             赞助我们
            </a>
           </li>
           <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8114" id="menu-item-8114">
            <a href="http://cos.name/cn/forum/26">
             项目合作
            </a>
           </li>
          </ul>
         </li>
        </ul>
       </div>
       <form action="http://cos.name/" class="search-form" method="get" role="search">
        <label>
         <span class="screen-reader-text">
          搜索：
         </span>
        </label>
       </form>
      </nav>
      <!-- #site-navigation -->
     </div>
     <!-- #navbar -->
    </header>
    <!-- #masthead -->
    <div class="site-main" id="main">
     <div class="content-area" id="primary">
      <div class="site-content" id="content" role="main">
       <article class="post-10181 post type-post status-publish format-standard hentry category-biostat category-graphics category-packages category-software tag-ggplot2 tag-gis tag-621 tag-854" id="post-10181">
        <header class="entry-header">
         <h1 class="entry-title">
          R绘制中国地图，并展示流行病学数据
         </h1>
         <div class="entry-meta">
          <span class="date">
           <a href="http://cos.name/2014/08/r-maps-for-china/" rel="bookmark" title="链向R绘制中国地图，并展示流行病学数据的固定链接">
            <time class="entry-date" datetime="2014-08-14T23:24:13+00:00">
             2014/08/14
            </time>
           </a>
          </span>
          <span class="categories-links">
           <a href="http://cos.name/category/data/biostat/" rel="category tag">
            生物与医学统计
           </a>
           、
           <a href="http://cos.name/category/software/graphics/" rel="category tag">
            统计图形
           </a>
           、
           <a href="http://cos.name/category/software/packages/" rel="category tag">
            统计软件
           </a>
           、
           <a href="http://cos.name/category/software/" rel="category tag">
            软件应用
           </a>
          </span>
          <span class="tags-links">
           <a href="http://cos.name/tag/ggplot2/" rel="tag">
            ggplot2
           </a>
           、
           <a href="http://cos.name/tag/gis%e6%95%b0%e6%8d%ae/" rel="tag">
            GIS数据
           </a>
           、
           <a href="http://cos.name/tag/%e5%9c%b0%e5%9b%be/" rel="tag">
            地图
           </a>
           、
           <a href="http://cos.name/tag/%e6%b5%81%e8%a1%8c%e7%97%85%e5%ad%a6/" rel="tag">
            流行病学
           </a>
          </span>
          <span class="author vcard">
           <a class="url fn n" href="http://cos.name/author/editor/" rel="author" title="查看所有由COS编辑部发布的文章">
            COS编辑部
           </a>
          </span>
         </div>
         <!-- .entry-meta -->
        </header>
        <!-- .entry-header -->
        <div class="entry-content">
         <blockquote>
          <p>
           本文作者：姜晓东，博士毕业于上海交通大学，目前任教于湖南师范大学医学院，专业神经毒理学。
          </p>
         </blockquote>
         <div class="a3s">
          流行病学的数据讲究“三间分布”，即人群分布、时间分布和空间分布。其中的“空间分布”最好是在地图上展示，才比较清楚。R软件集统计分析与高级绘图于大成，是最适合做这项工作了。关于地图的绘制过程，谢益辉、邱怡轩和陈丽云等人都早有文章讲述，开R地图中文教程之先河。由于目前指导毕业论文用到，因此研究了一下。本来因为网上教程很多，曾打消了写些文字的计划，但怡轩版主鼓励说“教程者众，整合者鲜”，所以才战胜拖延症，提起拙笔综述整合一下，并对DIY统计GIS地图提出了一点自己的想法。
         </div>
         <h3>
          1 地图GIS数据的来源与R绘制软件包
         </h3>
         <p>
          中国地图GIS数据的官方数据可以在国家基础地理信息中心的网站（
          <a href="http://nfgis.nsdi.gov.cn" target="_blank">
           http://nfgis.nsdi.gov.cn
          </a>
          ）里面可以免费下载。官方公开的数据包括：地图数据，及居住地、交通、河流等辅助数据。今年6月开始，官方正组织开始制作新版数据。老数据暂时无法下载，读者要自行百度搜索，本文以旧版数据为例。旧版地图数据中部分地名和地市区划已经过时，使用时需注意。
         </p>
         <p>
          地图数据有4个压缩文件：bou1_4m.zip、bou2_4m.zip、bou3_4m.zip和bou4_4m.zip。bou代表边界的意思，数字1~4代表国家、省、市、县的4级行政划分；4m代表比例是400万分之一，这个比例的图形是公开的。每个文件解压缩后含有两类文件：以字母p结尾的表示多边形数据，用来绘制区域；以字母l结尾的文件是线形数据，用来绘制边界。但是老版数据中，市级数据中缺少绘制区域的多边形数据，让市级分布图的绘制稍麻烦一些，新版中也许会有改进。
         </p>
         <p>
          用R绘制地图比较简单。比如画一下全国范围的区域，可以用如下代码：
         </p>
         <pre>library(maptools)
mydat = readShapePoly("maps/bou1/bou1_4p.shp")
plot(mydat)</pre>
         <p>
          <a href="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-1.png">
           <img src="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-1-e1408027878462.png"/>
          </a>
          <br/>
          但是，可以看出这样绘制的地图的形状有些扁平。这是因为，在绘图的过程中，默认把经度和纬度作为普通数据，均匀平等对待，绘制在笛卡尔坐标系上造成的。其实，地球的球面图形如何映射到平面图上，在地理学上是有一系列不同的专业算法的。地图不应该画在普通的笛卡尔坐标系上，而是要画在地理学专业的坐标系上。在这一点上，R的ggplot2包提供了专门的
          <code>
           coord_map()
          </code>
          函数。所以推荐R的ggplot2包来绘制地图。
         </p>
         <pre>library(ggplot2)
mymap = ggplot(data = fortify(mydat)) +
    geom_polygon(aes(x = long, y = lat, group = id), colour = "black",
                 fill = NA) +
    theme_grey()
print(mymap + coord_map())</pre>
         <p>
          <a href="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-2.png">
           <img src="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-2.png"/>
          </a>
          <br/>
          这次中国地图的形状与百度地图一样了。
          <span id="more-10181">
          </span>
         </p>
         <p>
          ggplot2包的
          <code>
           coord_map
          </code>
          函数默认的映射类型是mercator。如果有其他需要，可以使用其他的映射类型来绘制地图，如：
         </p>
         <pre>mymap + coord_map(projection = "azequidistant")</pre>
         <p>
          <a href="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-3.png">
           <img src="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-3-e1408027824797.png"/>
          </a>
          <code>
           coord_map
          </code>
          函数的映射类型及其含义可以通过下列代码查询帮助，一般我们用默认的就可以。
         </p>
         <pre>library(mapproj)
?mapproject</pre>
         <h3>
          2 GIS地图的数据结构及省市地图的绘制
         </h3>
         <p>
          GIS地图有很多种存储格式，其中shapefile格式（.shp）可以通过R的maptools包打开。其他格式可以去R官网查询相应的软件包。
         </p>
         <p>
          地图数据基本可以分为点、线、面三种数据，在maptools包内分别有对应的函数来读取（
          <code>
           readShapePoints
          </code>
          、
          <code>
           readShapeLines
          </code>
          和
          <code>
           readShapePoly
          </code>
          函数）。首先以面（poly）型数据介绍。先看代码，通过
          <code>
           readShapePoly
          </code>
          函数读入省级地图：
         </p>
         <pre>library(maptools)
mydat = readShapePoly("maps/bou2/bou2_4p.shp")</pre>
         <p>
          此时，
          <code>
           mydat
          </code>
          中保存的是各个省/直辖市的多边形面图，数据类型是
          <code>
           SpatialPolygonsDataFrame
          </code>
          。我们可以：
         </p>
         <pre>length(mydat)

## [1] 925

names(mydat)

## [1] "AREA" "PERIMETER" "BOU2_4M_" "BOU2_4M_ID" "ADCODE93"
## [6] "ADCODE99" "NAME"</pre>
         <p>
          可以发现
          <code>
           mydat
          </code>
          中有925条记录，每条记录中含有面积（AREA）、周长（PERIMETER）、各种编号、中文名（NAME）等字段。其中中文名（NAME）字段是以GBK编码的。
         </p>
         <p>
          这个
          <code>
           SpatialPolygonsDataFrame
          </code>
          类型并不是真正的
          <code>
           data.frame
          </code>
          类型，而是一个sp包定义的类，只不过重载了
          <code>
           []
          </code>
          和
          <code>
           $
          </code>
          运算符，使得一些行为上与
          <code>
           data.frame
          </code>
          相类似。
         </p>
         <p>
          可以进一步统计一下，每个省/直辖市的多边形数目。
         </p>
         <pre>table(iconv(mydat$NAME, from = "GBK"))

## 
##           上海市           云南省     内蒙古自治区           北京市 
##               12                1                1                1 
##           台湾省           吉林省           四川省           天津市 
##               57                1                1                1 
##   宁夏回族自治区           安徽省           山东省           山西省 
##                1                1               86                1 
##           广东省   广西壮族自治区 新疆维吾尔自治区           江苏省 
##              154                6                1                5 
##           江西省           河北省           河南省           浙江省 
##                1                9                1              179 
##           海南省           湖北省           湖南省           甘肃省 
##               79                1                1                1 
##           福建省       西藏自治区           贵州省           辽宁省 
##              168                1                2               94 
##           重庆市           陕西省           青海省   香港特别行政区 
##                1                1                1               53 
##         黑龙江省 
##                1
</pre>
         <p>
          我的环境是UTF-8，所以需要
          <code>
           iconv
          </code>
          函数转化一下才能正常显示。
         </p>
         <p>
          结果显示多数省的地图都是由一个多边形构成，少数临海省/直辖市由于有很多附属岛屿，多边形数目比较多。
         </p>
         <p>
          利用与
          <code>
           data.frame
          </code>
          相似的
          <code>
           []
          </code>
          和
          <code>
           $
          </code>
          运算符操作，我们可以迅速提取出一个省市的数据，比如上海及附属崇明岛：
         </p>
         <pre>Shanghai = mydat[mydat$ADCODE99 == 310000,]
plot(Shanghai)</pre>
         <p>
          <a href="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-8.png">
           <img src="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-8-e1408027792888.png"/>
          </a>
         </p>
         <p>
          其中ADCODE99是国家基础地理信息中心定义的区域代码，共有6位数字，由省、地市、县各两位代码组成。
         </p>
         <p>
          为了进一步在ggplot2包中绘图，需要把
          <code>
           SpatialPolygonsDataFrame
          </code>
          数据类型转化为真正的
          <code>
           data.frame
          </code>
          类型才可以。ggplot2包专门针对地理数据提供了特化版本的
          <code>
           fortify
          </code>
          函数来做这个工作：
         </p>
         <pre>head(fortify(Shanghai))

##    long   lat order  hole piece group  id
## 1 121.3 31.85     1 FALSE     1 208.1 208
## 2 121.3 31.85     2 FALSE     1 208.1 208
## 3 121.3 31.85     3 FALSE     1 208.1 208
## 4 121.3 31.85     4 FALSE     1 208.1 208
## 5 121.3 31.84     5 FALSE     1 208.1 208
## 6 121.4 31.83     6 FALSE     1 208.1 208</pre>
         <h3>
          3 在地图上展示流行病学数据
         </h3>
         <h4>
          3.1 一地名对应一区域，长沙为例
         </h4>
         <p>
          首先把长沙所辖地区找到，这个可以根据ADCODE99编码的前4位定位长沙，去查表就可以了。但是这个地名是99年的标准，新版正在制定过程中，随时会变。我们权且以此为例。如果找不到表，可以通过代码在命令行下手工查找：
         </p>
         <pre>mydat = readShapePoly("maps/bou4/BOUNT_poly.shp")
tmp = iconv(mydat$NAME99, from = "GBK")
grep("长沙", tmp, value = TRUE)

## [1] "长沙县"       "长沙市市辖区"

grep("长沙", tmp)

## [1] 2122 2183

mydat$ADCODE99[grep("长沙", tmp)]

## [1] 430121 430101
## 2368 Levels: 0 110100 110112 110113 110221 110224 110226 110227 ... 820000
</pre>
         <p>
          这样我们就知道了长沙ADCODE99编码的前4位是4301，其中43代表湖南省，01就是长沙市。接着就可以筛选出长沙的地图数据：
         </p>
         <pre>Changsha = mydat[substr(as.character(mydat$ADCODE99), 1, 4) == "4301",]
mysh = fortify(Changsha, region = 'NAME99')
mysh = transform(mysh, id = iconv(id, from = 'GBK'), group = iconv(group, from = 'GBK'))
head(mysh, n = 2)

##    long   lat order  hole piece          group           id
## 1 113.1 28.18     1 FALSE     1 长沙市市辖区.1 长沙市市辖区
## 2 113.1 28.18     2 FALSE     1 长沙市市辖区.1 长沙市市辖区

names(mysh)[1:2] = c("x","y")   #这句是不得已而为之的黑魔法
</pre>
         <p>
          接着我们给一串随机数当成是流行病学数据，并用颜色填充到地图上。
         </p>
         <pre>myepidat = data.frame(id = unique(sort(mysh$id)))
myepidat$rand = runif(length(myepidat$id))
myepidat

##             id    rand
## 1       宁乡县 0.98076
## 2       望城县 0.32123
## 3       浏阳市 0.66957
## 4       长沙县 0.09655
## 5 长沙市市辖区 0.19437

csmap = ggplot(myepidat) +
    geom_map(aes(map_id = id, fill = rand), color = "white", map = mysh) +
    scale_fill_gradient(high = "darkgreen",low = "lightgreen") +
    expand_limits(mysh) + coord_map()
print(csmap)
</pre>
         <p>
          <a href="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-12.png">
           <img src="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-12-e1408027716212.png"/>
          </a>
          接下来的工作就是添加地名，sp包提供了
          <code>
           coordinates
          </code>
          函数，来计算地图的中心坐标：
         </p>
         <pre>tmp = coordinates(Changsha)
print(tmp)

##       [,1]  [,2]
## 2121 113.2 28.32
## 2134 113.7 28.23
## 2136 112.8 28.29
## 2149 112.3 28.13
## 2182 113.0 28.17

tmp = as.data.frame(tmp)
tmp$names = iconv(Changsha$NAME99, from = 'GBK')
print(tmp)

##         V1    V2        names
## 2121 113.2 28.32       长沙县
## 2134 113.7 28.23       浏阳市
## 2136 112.8 28.29       望城县
## 2149 112.3 28.13       宁乡县
## 2182 113.0 28.17 长沙市市辖区

csmap + geom_text(aes(x = V1,y = V2,label = names), family = "GB1", data = tmp)
</pre>
         <p>
          <a href="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-13.png">
           <img src="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-13-e1408027752719.png"/>
          </a>
          如果需要支持更多字体，可以配合使用showtext包。
         </p>
         <h4>
          3.2 内地省份的地市级图的情况
         </h4>
         <p>
          如果国家基础地理信息中心的GIS地图数据的地市文件bou3_4m.zip中含有polygon文件，那么我们就可以根据上一节的内容绘制省内地市级分布图了。官方恰恰缺少了这个文件，给绘图造成了麻烦。解决方案有两个：一个是另辟蹊径，从非官方的
          <a href="http://www.gadm.org">
           www.gadm.org
          </a>
          下载一份shp格式的中国地图来绘制；另一个解决方案是从官方发布的县级地图入手，根据ADCODE99编码适当合并，绘制省内地市分布图，同时利用bou3_4m.zip仅存的边界文件绘制边界。
         </p>
         <p>
          相信官方新版本的GIS地图数据会包含旧版本所缺失的这份文件。目前还是建议暂时使用gadm的省级地图。旧版官方地图信息比较陈旧落后，比如湖南没有标注出湘西州的规划。
         </p>
         <h4>
          3.3 一地名对应多区域，上海为例
         </h4>
         <p>
          中国很多沿海省/直辖市有很多附属岛屿，导致地名和区域（Polygon）存在一对多的情况。这种情况下，在
          <code>
           fortify
          </code>
          处理数据的时候一定要特别注意索引与多边形一一对应，同时又要保持地名信息，黑魔法在代码中：
         </p>
         <pre># mydat = readShapePoly("maps/bou4/BOUNT_poly.shp")
Shanghai = mydat[substr(as.character(mydat$ADCODE99), 1, 2) == '31',]
mysh = fortify(Shanghai, region = 'NAME99')
mysh = transform(mysh, id = iconv(id, from = 'GBK'), group = iconv(group, from = 'GBK'))
head(mysh)

##    long   lat order  hole piece    group     id
## 1 121.2 31.85     1 FALSE     1 崇明县.1 崇明县
## 2 121.3 31.85     2 FALSE     1 崇明县.1 崇明县
## 3 121.3 31.85     3 FALSE     1 崇明县.1 崇明县
## 4 121.3 31.85     4 FALSE     1 崇明县.1 崇明县
## 5 121.3 31.85     5 FALSE     1 崇明县.1 崇明县
## 6 121.3 31.84     6 FALSE     1 崇明县.1 崇明县

# 黑魔法在此
names(mysh)[c(1, 2, 6, 7)] = c("x", "y", "id", "code")

myepidat = data.frame(id = unique(sort(mysh$id)))
# 随机数字替代数据
myepidat$rand = runif(length(myepidat$id))

# 官方地图区划比较落后过时，目前上海是16区1县，神码“市直辖5区”的称呼已经过时。
myepidat

##                id    rand
## 1  上海市市辖区.1 0.21673
## 2  上海市市辖区.2 0.74173
## 3  上海市市辖区.3 0.02462
## 4  上海市市辖区.4 0.20619
## 5  上海市市辖区.5 0.89970
## 6        南汇县.1 0.77084
## 7        嘉定区.1 0.21771
## 8        奉贤县.1 0.91729
## 9        崇明县.1 0.04879
## 10       崇明县.2 0.02462
## 11       崇明县.3 0.03397
## 12       崇明县.4 0.72591
## 13       崇明县.5 0.72059
## 14       崇明县.6 0.43981
## 15       松江区.1 0.18296
## 16       金山区.1 0.78371
## 17       金山区.2 0.88552
## 18       闵行区.1 0.54186
## 19       青浦县.1 0.12003

ggplot(myepidat) + geom_map(aes(map_id = id, fill = rand), map = mysh) +
    expand_limits(mysh) + coord_map()
</pre>
         <p>
          <a href="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-14.png">
           <img src="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-14.png"/>
          </a>
         </p>
         <h4>
          3.4 其他问题
         </h4>
         <p>
          如果需要县级以下的地图GIS数据，比如街道、乡村的地图，国家地理信息中心并不提供。要么去民政部索取，要么自己绘制。
         </p>
         <p>
          另外，提醒大家，流行病学数据并不是仅仅画在地图上就完事了。针对空间数据，R里面有很多空间数据的分析软件包。推荐Roger S. Bivand的《Applied Spatial Data Analysis with R》，尤其是里面第11章“Disease Mapping”，对医学背景同学很有益处。如果能找到一个地理资源环境学院的研究生一同讨论的话就更好了。毕竟，它山之石可以攻玉，我们要承认自己的不足。
         </p>
         <h3>
          4 自己绘制简单的GIS地图
         </h3>
         <p>
          在制作流行病学统计地图的过程中，对于很多区、街道、乡村级别的地图，无法获得GIS数据。很多人的做法是到百度地图上用绘图软件摹描出区域线图，然后再把自己的数据计算成相应颜色，再手工填充颜色绘成统计地图。这个过程枯燥繁琐，而且数据映射成颜色的时候容易出错。不如把你已经描好的线图，制成shp格式的GIS数据地图，分享给大家用。辛苦你一个，幸福千万家。这个过程其实有专业的GIS软件可以做，若你能找到专业人士，就直接“幸福千万家”了。
         </p>
         <p>
          如果地图结构简单，我们可以“土法”来做。先去NIH（美国国立卫生研究院）网站下载一个免费的图像软件ImageJ，用来采集地区边界数据。然后再把采集好的数据在R软件里面把像素坐标换算成地理坐标，在利用R软件sp包和maptools的函数整合成
          <code>
           SpatialPolygonsDataFrame
          </code>
          ，最后保存为shp格式的地图文件。
         </p>
         <p>
          我们以起点中文网小说《江山美人志》开篇所附地图为例，绘制虚拟世界里面“中南郡”的GIS地图。为了和实际问题类似，我在地图中画上了参考坐标线。
         </p>
         <p>
          <a href="http://cos.name/wp-content/uploads/2014/08/mymap.png">
           <img src="http://cos.name/wp-content/uploads/2014/08/mymap.png"/>
          </a>
         </p>
         <p>
          利用ImageJ“点”工具，同时按住Shift键一次批量多点采样，再点击分析菜的测量，最后保存结果。
         </p>
         <p>
          ImageJ采集的点坐标是位图像素相对坐标，为了能换算为地理经纬度坐标。我们先采集图上参考坐标线上的经纬交点坐标，在R中建立换算关系：
         </p>
         <pre>mg_pos = data.frame(x = c(103,103,403,403), y = c(75,275,75,275))
real_pos = data.frame(x = c(105,105,115,115), y = c(27,20,27,20))

data_x = data.frame(img = img_pos$x, rel = real_pos$x)
data_y = data.frame(img = img_pos$y, rel = real_pos$y)

lm_x = lm(rel~img, data = data_x)
lm_y = lm(rel~img, data = data_y)

mytrans_x = function(myimg) {
     predict(lm_x, newdata = data.frame(img = myimg))
}
mytrans_y = function(myimg) {
     predict(lm_y, newdata = data.frame(img = myimg))
}
</pre>
         <p>
          然后，再利用ImageJ软件对中南郡的每个区域轮廓线单独描边采样，这样做的缺点就是两个区域相邻边会有些不一致，出现小幅的咬合错位现象，但这个对美观影响不大。优点是大大节省时间。
         </p>
         <p>
          把每个区域的边界保存在单独的文件中。然后在R中把这些数据转化为GIS数据，保存为shp格式的标准地图文件。关于代码中函数的意义及范例（比我的代码更清晰），请参考sp和maptools包的帮助文件。
         </p>
         <pre>library(maptools)

myfiles = c("Jiana.xls", "Kutedan.xls", "Miyaluo.xls", "Woda.xls", "Yada.xls")
mypolys = lapply(myfiles,
                 function(x) {
                     tmp = read.table(paste0("data/", x));
                     tmp = rbind(tmp, tmp[1, ]);
                     tmp$X = mytrans_x(tmp$X);
                     tmp$Y = mytrans_y(tmp$Y);
                     tmp
                 })

mynames = sub(".xls$", "", myfiles)
names(mypolys) = mynames

myPolygons = lapply(mynames,
                    function(x) {
                        tmp = mypolys[[x]];
                        Polygons(list(Polygon(cbind(tmp$X, tmp$Y))), x)
                    })

mySpn = SpatialPolygons(myPolygons)
myCNnames = c("嘉纳", "库特丹", "米亚洛", "沃达", "雅达")
myshpdata = SpatialPolygonsDataFrame(mySpn,
                                     data = data.frame(
                                         Names = mynames,
                                         CNnames = myCNnames,
                                         row.names = row.names(mySpn)))

# 我们要注意到：SpatialPolygonsDataFrame类的data成员的字段是可以自定义的，
# 这个是暴露给names函数以及$、[]运算符的。
writePolyShape(x = myshpdata, fn = "data/myDIYmap_poly")
</pre>
         <p>
          这样我们在就成功保存了shp格式的地图文件（一共生成三个文件，一个shp文件，两个辅助文件）。生成的地图文件可以留给别人用，也可以正常打开绘图了。
         </p>
         <pre>mydat = readShapePoly("data/myDIYmap_poly.shp")
plot(mydat)</pre>
         <p>
          <a href="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-17.png">
           <img src="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-17.png"/>
          </a>
         </p>
         <p>
          可以发现，在区域相邻的边界，有咬合分离现象，这是由于我们采样的时候，每个区单独描边，产生了共享边的不一致。不过，我们绘制地图是为了展示流行病学数据，这个误差是可以接受的。
         </p>
         <pre>library(ggplot2)
mysh = fortify(mydat, region = "CNnames")
names(mysh)[1:2] = c("x", "y")
myepidat = data.frame(id = unique(sort(mysh$id)))
myepidat$rand = runif(length(myepidat$id))
tmp = coordinates(mydat)
tmp = as.data.frame(tmp)
tmp$names = mydat$CNnames
ggplot(myepidat) + geom_map(aes(map_id = id, fill = rand), color = "white", map = mysh) +
    geom_text(aes(x = V1,y = V2,label = names), family = "GB1", data = tmp)+
    scale_fill_gradient(high = "red", low = "yellow") +
    expand_limits(mysh) + coord_map()
</pre>
         <p>
          <a href="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-18.png">
           <img src="http://cos.name/wp-content/uploads/2014/08/unnamed-chunk-18.png"/>
          </a>
         </p>
         <p>
          如上，画成统计地图，还算美观。
         </p>
         <p>
          如果非要消除这种边界交错的不完美，就需要预先制定规划，在位图上分段采集边界线，再拼接组合成区域轮廓。由于共享边只采集一次，你能得到边界完美的地图。问题是，随着地图区域增多，你将在轮廓的拼接组合上，面临几何级数增长的复杂度。不过，离开现实的功利和胁迫，去追求完美，不也是推动这个世界前进的原动力么？
         </p>
         <h3>
          5 小结
         </h3>
         <p>
          尽管我在写作中使用了这个星球上最强大的knitr软件包来保证本文的可重复性，但是随着官方新版数据在未来的发布，数据的字段名称甚至组织布局将会有些变化，也会使本文代码无法直接拷贝运行。还是希望读者能自己掌握R，以无招胜有招。
         </p>
         <p>
          喜欢读统计之都主页文章的结尾部分，因为常在此部分读到作者“不着调”的话，发人深省。最爱杨灿兄改编的这段：
         </p>
         <p>
          问：世间是否此山最高，或者另有高处比天高？
         </p>
         <p>
          答：在世间自有山比此山更高，Open-mind要比天高。
         </p>
         <h3>
          参考文献
         </h3>
         <ol>
          <li>
           谢益辉，2007，
           <a href="http://yihui.name/cn/2007/09/china-map-at-province-level/">
            http://yihui.name/cn/2007/09/china-map-at-province-level/
           </a>
          </li>
          <li>
           邱怡轩，2009，
           <a href="http://cos.name/2009/07/drawing-china-map-using-r/">
            http://cos.name/2009/07/drawing-china-map-using-r/
           </a>
          </li>
          <li>
           陈丽云，2011，
           <a href="http://www.loyhome.com/用R画（中国）地图-2/">
            http://www.loyhome.com/用R画（中国）地图-2/
           </a>
          </li>
          <li>
           写长城的诗，2012，
           <a href="http://www.r-bloggers.com/lang/chinese/1010">
            http://www.r-bloggers.com/lang/chinese/1010
           </a>
          </li>
          <li>
           杨灿，2011，
           <a href="http://cos.name/2011/12/stories-about-statistical-learning">
            http://cos.name/2011/12/stories-about-statistical-learning
           </a>
          </li>
         </ol>
         <p>
          附：本文所用地图数据
          <a href="http://cos.name/wp-content/uploads/2014/08/maps_data.7z">
           下载
          </a>
         </p>
         <p>
         </p>
         <div class="wumii-hook">
          <br/>
          <br/>
         </div>
        </div>
        <!-- .entry-content -->
        <footer class="entry-meta">
         <div class="author-info">
          <div class="author-avatar">
           <img src="http://sdn.geekzu.org/avatar/2fe058e9e383c85afa949b36e869432f?s=74&amp;d=monsterid&amp;r=g"/>
          </div>
          <!-- .author-avatar -->
          <div class="author-description">
           <h2 class="author-title">
            关于COS编辑部
           </h2>
           <p class="author-bio">
            本账户为COS编辑部公共账户，目前由朱雪宁任主编，王小宁任副主编，编辑有：冯璟烁、吴佳萍、张心雨、施涛、霍志骥、何通、冷静、尤晓斌、肖楠、邱怡轩、高涛、谢益辉等人，主要负责主站文章的规范化编辑以及相关论文、书籍、手册的整理、编纂、出版等工作。
            <a class="author-link" href="http://cos.name/author/editor/" rel="author">
             查看所有由COS编辑部发表的文章
             <span class="meta-nav">
              →
             </span>
            </a>
           </p>
          </div>
          <!-- .author-description -->
         </div>
         <!-- .author-info -->
        </footer>
        <!-- .entry-meta -->
       </article>
       <!-- #post -->
       <nav class="navigation post-navigation" role="navigation">
        <h1 class="screen-reader-text">
         文章导航
        </h1>
        <div class="nav-links">
         <a href="http://cos.name/2014/08/lingzi-lu-memorial-award/" rel="prev">
          <span class="meta-nav">
           ←
          </span>
          他乡与梦想：吕令子纪念基金
         </a>
         <a href="http://cos.name/2014/09/let-us-own-data-science/" rel="next">
          郁彬：让我们拥抱数据科学（Let us own data science）
          <span class="meta-nav">
           →
          </span>
         </a>
        </div>
        <!-- .nav-links -->
       </nav>
       <!-- .navigation -->
       <div class="comments-area" id="comments">
        <h2 class="comments-title">
         《
         <span>
          R绘制中国地图，并展示流行病学数据
         </span>
         》有27个想法
        </h2>
        <ol class="comment-list">
         <li class="comment even thread-even depth-1 parent" id="comment-6143">
          <article class="comment-body" id="div-comment-6143">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              <a class="url" href="http://www.douban.com/people/4471819/" rel="external nofollow">
               rainki
              </a>
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6143">
              <time datetime="2014-08-15T09:21:30+00:00">
               2014/08/15 09:21
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             这篇文章所使用的地图数据已经失效，这篇文章的写作日期应该在2012年左右。
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给rainki" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6143#respond" onclick='return addComment.moveForm( "div-comment-6143", "6143", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
          <ol class="children">
           <li class="comment odd alt depth-2 parent" id="comment-6145">
            <article class="comment-body" id="div-comment-6145">
             <footer class="comment-meta">
              <div class="comment-author vcard">
               <img src="http://sdn.geekzu.org/avatar/?s=74&amp;d=monsterid&amp;r=g"/>
               <b class="fn">
                <a class="url" href="http://weibo.com/3218239603" rel="external nofollow">
                 不了峰二世
                </a>
               </b>
               <span class="says">
                说道：
               </span>
              </div>
              <!-- .comment-author -->
              <div class="comment-metadata">
               <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6145">
                <time datetime="2014-08-15T09:23:42+00:00">
                 2014/08/15 09:23
                </time>
               </a>
              </div>
              <!-- .comment-metadata -->
             </footer>
             <!-- .comment-meta -->
             <div class="comment-content">
              <p>
               <a href="http://www.gadm.org/country" rel="nofollow">
                http://www.gadm.org/country
               </a>
               这里面的会不会更好一些?
              </p>
             </div>
             <!-- .comment-content -->
             <div class="reply">
              <a aria-label="回复给不了峰二世" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6145#respond" onclick='return addComment.moveForm( "div-comment-6145", "6145", "respond", "10181" )' rel="nofollow">
               回复
              </a>
             </div>
            </article>
            <!-- .comment-body -->
            <ol class="children">
             <li class="comment even depth-3 parent" id="comment-6161">
              <article class="comment-body" id="div-comment-6161">
               <footer class="comment-meta">
                <div class="comment-author vcard">
                 <img src="http://sdn.geekzu.org/avatar/2d41c782d1206b5722748a32c2dea6b7?s=74&amp;d=monsterid&amp;r=g"/>
                 <b class="fn">
                  jxd
                 </b>
                 <span class="says">
                  说道：
                 </span>
                </div>
                <!-- .comment-author -->
                <div class="comment-metadata">
                 <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6161">
                  <time datetime="2014-08-16T19:07:20+00:00">
                   2014/08/16 19:07
                  </time>
                 </a>
                </div>
                <!-- .comment-metadata -->
               </footer>
               <!-- .comment-meta -->
               <div class="comment-content">
                <p>
                 如果有官方最新地图，还是用官方的吧。
                 <br/>
                 gadm的地图不知道在国界细节上有没有出入。
                </p>
               </div>
               <!-- .comment-content -->
              </article>
              <!-- .comment-body -->
             </li>
             <!-- #comment-## -->
             <li class="comment odd alt depth-3" id="comment-6208">
              <article class="comment-body" id="div-comment-6208">
               <footer class="comment-meta">
                <div class="comment-author vcard">
                 <img src="http://sdn.geekzu.org/avatar/?s=74&amp;d=monsterid&amp;r=g"/>
                 <b class="fn">
                  <a class="url" href="http://t.qq.com/sk3we08642" rel="external nofollow">
                   邯郸邯山区找小姐上門服務
                  </a>
                 </b>
                 <span class="says">
                  说道：
                 </span>
                </div>
                <!-- .comment-author -->
                <div class="comment-metadata">
                 <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6208">
                  <time datetime="2014-09-09T01:37:12+00:00">
                   2014/09/09 01:37
                  </time>
                 </a>
                </div>
                <!-- .comment-metadata -->
               </footer>
               <!-- .comment-meta -->
               <div class="comment-content">
                <p>
                 CN175。com 你懂得！
                </p>
               </div>
               <!-- .comment-content -->
              </article>
              <!-- .comment-body -->
             </li>
             <!-- #comment-## -->
            </ol>
            <!-- .children -->
           </li>
           <!-- #comment-## -->
           <li class="comment byuser comment-author-yixuanq even depth-2" id="comment-6147">
            <article class="comment-body" id="div-comment-6147">
             <footer class="comment-meta">
              <div class="comment-author vcard">
               <img src="http://sdn.geekzu.org/avatar/f09663fd5fc04bad5e5b09daddb86fe6?s=74&amp;d=monsterid&amp;r=g"/>
               <b class="fn">
                Yixuan
               </b>
               <span class="says">
                说道：
               </span>
              </div>
              <!-- .comment-author -->
              <div class="comment-metadata">
               <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6147">
                <time datetime="2014-08-15T10:30:00+00:00">
                 2014/08/15 10:30
                </time>
               </a>
              </div>
              <!-- .comment-metadata -->
             </footer>
             <!-- .comment-meta -->
             <div class="comment-content">
              <p>
               参见文章最后两个字，数据还有的。
              </p>
             </div>
             <!-- .comment-content -->
             <div class="reply">
              <a aria-label="回复给Yixuan" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6147#respond" onclick='return addComment.moveForm( "div-comment-6147", "6147", "respond", "10181" )' rel="nofollow">
               回复
              </a>
             </div>
            </article>
            <!-- .comment-body -->
           </li>
           <!-- #comment-## -->
           <li class="comment odd alt depth-2" id="comment-6160">
            <article class="comment-body" id="div-comment-6160">
             <footer class="comment-meta">
              <div class="comment-author vcard">
               <img src="http://sdn.geekzu.org/avatar/2d41c782d1206b5722748a32c2dea6b7?s=74&amp;d=monsterid&amp;r=g"/>
               <b class="fn">
                jxd
               </b>
               <span class="says">
                说道：
               </span>
              </div>
              <!-- .comment-author -->
              <div class="comment-metadata">
               <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6160">
                <time datetime="2014-08-16T19:03:47+00:00">
                 2014/08/16 19:03
                </time>
               </a>
              </div>
              <!-- .comment-metadata -->
             </footer>
             <!-- .comment-meta -->
             <div class="comment-content">
              <p>
               这篇文章确实是新鲜出炉，今年所写，上半年还能下载地图。
               <br/>
               后来地理中心开始更新数据：
               <a href="http://ngcc.sbsm.gov.cn/article/xwzx/xmjs/201406/20140600004739.shtml" rel="nofollow">
                http://ngcc.sbsm.gov.cn/article/xwzx/xmjs/201406/20140600004739.shtml
               </a>
               <br/>
               同时 ，也有网友询问，官方也解释了由于数据更新，现在不能下载：
               <a href="http://ngcc.sbsm.gov.cn/article/khly/lyzx/" rel="nofollow">
                http://ngcc.sbsm.gov.cn/article/khly/lyzx/
               </a>
              </p>
             </div>
             <!-- .comment-content -->
             <div class="reply">
              <a aria-label="回复给jxd" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6160#respond" onclick='return addComment.moveForm( "div-comment-6160", "6160", "respond", "10181" )' rel="nofollow">
               回复
              </a>
             </div>
            </article>
            <!-- .comment-body -->
           </li>
           <!-- #comment-## -->
           <li class="comment even depth-2" id="comment-6207">
            <article class="comment-body" id="div-comment-6207">
             <footer class="comment-meta">
              <div class="comment-author vcard">
               <img src="http://sdn.geekzu.org/avatar/?s=74&amp;d=monsterid&amp;r=g"/>
               <b class="fn">
                <a class="url" href="http://t.qq.com/sk3we08642" rel="external nofollow">
                 邯郸邯山区找小姐上門服務
                </a>
               </b>
               <span class="says">
                说道：
               </span>
              </div>
              <!-- .comment-author -->
              <div class="comment-metadata">
               <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6207">
                <time datetime="2014-09-09T01:37:03+00:00">
                 2014/09/09 01:37
                </time>
               </a>
              </div>
              <!-- .comment-metadata -->
             </footer>
             <!-- .comment-meta -->
             <div class="comment-content">
              <p>
               CN175。com 你懂得！
              </p>
             </div>
             <!-- .comment-content -->
             <div class="reply">
              <a aria-label="回复给邯郸邯山区找小姐上門服務" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6207#respond" onclick='return addComment.moveForm( "div-comment-6207", "6207", "respond", "10181" )' rel="nofollow">
               回复
              </a>
             </div>
            </article>
            <!-- .comment-body -->
           </li>
           <!-- #comment-## -->
          </ol>
          <!-- .children -->
         </li>
         <!-- #comment-## -->
         <li class="comment odd alt thread-odd thread-alt depth-1" id="comment-6144">
          <article class="comment-body" id="div-comment-6144">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              <a class="url" href="http://weibo.com/3218239603" rel="external nofollow">
               不了峰二世
              </a>
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6144">
              <time datetime="2014-08-15T09:21:56+00:00">
               2014/08/15 09:21
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             好人,好人,,早看到就不用这么苦逼了
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给不了峰二世" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6144#respond" onclick='return addComment.moveForm( "div-comment-6144", "6144", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
         </li>
         <!-- #comment-## -->
         <li class="comment even thread-even depth-1" id="comment-6149">
          <article class="comment-body" id="div-comment-6149">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/aa78780f3165981343befe987422d421?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              Tony Tsai
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6149">
              <time datetime="2014-08-15T10:47:13+00:00">
               2014/08/15 10:47
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             从图片制作shp过程在GIS专业里属于地图数字化的一部分，一般使用ArcGIS等专业GIS软件，可以很好解决多边形边界咬合分离、添加投影、地图几何配准的问题，而且提取多边形外边界，线转面等都很容易实现。可以考虑shp制作在ArcGIS等专业软件来实现。
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给Tony Tsai" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6149#respond" onclick='return addComment.moveForm( "div-comment-6149", "6149", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
         </li>
         <!-- #comment-## -->
         <li class="comment odd alt thread-odd thread-alt depth-1" id="comment-6150">
          <article class="comment-body" id="div-comment-6150">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/bcf99f417a3b836ecad8e67f67138e5c?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              <a class="url" href="http://weibo.com/3218239603" rel="external nofollow">
               不了峰
              </a>
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6150">
              <time datetime="2014-08-15T11:47:03+00:00">
               2014/08/15 11:47
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             在地图上标识名称的代码可能有问题
             <br/>
             tmp = coordinates(Changsha)
             <br/>
             tmp = as.data.frame(tmp)
            </p>
            <p>
             Error in data.frame(list(c(113.00043, 112.9974, 112.99068, 112.98441,  :
             <br/>
             arguments imply differing number of rows: 627, 791, 470, 201
            </p>
            <p>
             我的R环境是R 3.1.0
             <br/>
             取坐标可能要用
             <br/>
             Changsha$CENTROID_Y
             <br/>
             Changsha$CENTROID_X
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给不了峰" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6150#respond" onclick='return addComment.moveForm( "div-comment-6150", "6150", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
         </li>
         <!-- #comment-## -->
         <li class="comment even thread-even depth-1" id="comment-6151">
          <article class="comment-body" id="div-comment-6151">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              <a class="url" href="http://weibo.com/1778360825" rel="external nofollow">
               夏少锋
              </a>
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6151">
              <time datetime="2014-08-15T19:44:49+00:00">
               2014/08/15 19:44
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             太好了
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给夏少锋" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6151#respond" onclick='return addComment.moveForm( "div-comment-6151", "6151", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
         </li>
         <!-- #comment-## -->
         <li class="comment odd alt thread-odd thread-alt depth-1 parent" id="comment-6153">
          <article class="comment-body" id="div-comment-6153">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/732e61e2c76cc603510a1d13243c079b?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              SASr
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6153">
              <time datetime="2014-08-15T23:17:51+00:00">
               2014/08/15 23:17
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             其实R做地图并没什么优势，写一大堆的代码，还不如geoda或Arcgis的一个菜单管用。甚至也不如SAS命令来的简单，喜欢钻研R的可以当做消遣看看，实用主义者不建议用R这么复杂。
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给SASr" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6153#respond" onclick='return addComment.moveForm( "div-comment-6153", "6153", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
          <ol class="children">
           <li class="comment even depth-2" id="comment-6164">
            <article class="comment-body" id="div-comment-6164">
             <footer class="comment-meta">
              <div class="comment-author vcard">
               <img src="http://sdn.geekzu.org/avatar/?s=74&amp;d=monsterid&amp;r=g"/>
               <b class="fn">
                <a class="url" href="http://t.qq.com/zhangbing4502431" rel="external nofollow">
                 张兵
                </a>
               </b>
               <span class="says">
                说道：
               </span>
              </div>
              <!-- .comment-author -->
              <div class="comment-metadata">
               <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6164">
                <time datetime="2014-08-17T09:13:43+00:00">
                 2014/08/17 09:13
                </time>
               </a>
              </div>
              <!-- .comment-metadata -->
             </footer>
             <!-- .comment-meta -->
             <div class="comment-content">
              <p>
               Geoda的功能太局限了！Arcgis在静态地图数据可视化方面还是蛮给力的，但在交互式地图可视化方面，R还是有优势的，当然结合Google earth，效果也很nice！地图数据可视化是为接下来的空间数据分析做铺垫，所以，选择什么软件，得多层考虑！当然，R和GIS都会，那就完美了！
              </p>
             </div>
             <!-- .comment-content -->
             <div class="reply">
              <a aria-label="回复给张兵" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6164#respond" onclick='return addComment.moveForm( "div-comment-6164", "6164", "respond", "10181" )' rel="nofollow">
               回复
              </a>
             </div>
            </article>
            <!-- .comment-body -->
           </li>
           <!-- #comment-## -->
          </ol>
          <!-- .children -->
         </li>
         <!-- #comment-## -->
         <li class="comment odd alt thread-even depth-1" id="comment-6177">
          <article class="comment-body" id="div-comment-6177">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/47221a03ede28a2d162c71f20057ac39?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              hurricaner1989
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6177">
              <time datetime="2014-08-23T05:29:21+00:00">
               2014/08/23 05:29
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             很好的文章，说理清楚明白，代码可重复性也很高，赞一个…
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给hurricaner1989" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6177#respond" onclick='return addComment.moveForm( "div-comment-6177", "6177", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
         </li>
         <!-- #comment-## -->
         <li class="comment even thread-odd thread-alt depth-1" id="comment-6181">
          <article class="comment-body" id="div-comment-6181">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              <a class="url" href="http://weibo.com/1224064007" rel="external nofollow">
               娘口三三三
              </a>
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6181">
              <time datetime="2014-08-26T11:55:52+00:00">
               2014/08/26 11:55
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             不错，收藏
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给娘口三三三" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6181#respond" onclick='return addComment.moveForm( "div-comment-6181", "6181", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
         </li>
         <!-- #comment-## -->
         <li class="comment odd alt thread-even depth-1" id="comment-6186">
          <article class="comment-body" id="div-comment-6186">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/28e5447953a1be60f8fb2a963a5577dd?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              Ophelin
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6186">
              <time datetime="2014-08-28T16:38:53+00:00">
               2014/08/28 16:38
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             没研究出imageJ提取地区界的方法，可有人知道？
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给Ophelin" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6186#respond" onclick='return addComment.moveForm( "div-comment-6186", "6186", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
         </li>
         <!-- #comment-## -->
         <li class="comment even thread-odd thread-alt depth-1" id="comment-6222">
          <article class="comment-body" id="div-comment-6222">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              <a class="url" href="http://weibo.com/1390274000" rel="external nofollow">
               2008linyili_fffa72
              </a>
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6222">
              <time datetime="2014-09-22T21:11:51+00:00">
               2014/09/22 21:11
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             <img src="http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/d0/z2_org.gif"/>
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给2008linyili_fffa72" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6222#respond" onclick='return addComment.moveForm( "div-comment-6222", "6222", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
         </li>
         <!-- #comment-## -->
         <li class="comment odd alt thread-even depth-1" id="comment-6236">
          <article class="comment-body" id="div-comment-6236">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              <a class="url" href="http://t.qq.com/bing901218" rel="external nofollow">
               小冰冰
              </a>
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6236">
              <time datetime="2014-09-28T10:47:07+00:00">
               2014/09/28 10:47
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             Changsha = mydat[substr(as.character(mydat$ADCODE99), 1, 4) == "4301",]
             <br/>
             mysh = fortify(Changsha, region = ‘NAME99’)
             <br/>
             mysh = transform(mysh, id = iconv(id, from = ‘GBK’), group = iconv(group, from = ‘GBK’))
             <br/>
             head(mysh, n = 2)
            </p>
            <p>
             ##    long   lat order  hole piece          group           id
             <br/>
             ## 1 113.1 28.18     1 FALSE     1 长沙市市辖区.1 长沙市市辖区
             <br/>
             ## 2 113.1 28.18     2 FALSE     1 长沙市市辖区.1 长沙市市辖区
            </p>
            <p>
             names(mysh)[1:2] = c("x","y")   #这句是不得已而为之的黑魔法
            </p>
            <p>
             请问一下
             <br/>
             在执行这句的时候， 错误: 不是所有的isTRUE(gpclibPermitStatus())都是TRUE
             <br/>
             mysh = fortify(Changsha, region = ‘NAME99’)
             <br/>
             请问这需要怎么做
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给小冰冰" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6236#respond" onclick='return addComment.moveForm( "div-comment-6236", "6236", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
         </li>
         <!-- #comment-## -->
         <li class="comment even thread-odd thread-alt depth-1" id="comment-6289">
          <article class="comment-body" id="div-comment-6289">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              <a class="url" href="http://t.qq.com/woshiisp" rel="external nofollow">
               海底神龟JSCN
              </a>
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6289">
              <time datetime="2014-10-16T22:31:13+00:00">
               2014/10/16 22:31
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             mymap = ggplot(data = fortify(mydat)) +
             <br/>
             geom_polygon(aes(x = long, y = lat, group = id), colour = "black",
             <br/>
             fill = NA) +
             <br/>
             theme_grey()
            </p>
            <p>
             新手，正在学习老师的文章，执行这段代码时候出现错误：
            </p>
            <p>
             Regions defined for each Polygons
             <br/>
             Error in as.vector(x, mode) :
             <br/>
             cannot coerce type ‘environment’ to vector of type ‘any’
            </p>
            <p>
             哪位能告诉我，到底是什么原因呢？
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给海底神龟JSCN" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6289#respond" onclick='return addComment.moveForm( "div-comment-6289", "6289", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
         </li>
         <!-- #comment-## -->
         <li class="comment odd alt thread-even depth-1" id="comment-6476">
          <article class="comment-body" id="div-comment-6476">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/10d8b4fd2668c81e813a682130fbcd55?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              laction
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6476">
              <time datetime="2014-12-26T14:03:15+00:00">
               2014/12/26 14:03
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             为什么我会出现这样的错误
             <br/>
             &gt; mysh = fortify(Changsha, region = "NAME99")
             <br/>
             Error: isTRUE(gpclibPermitStatus()) is not TRUE
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给laction" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6476#respond" onclick='return addComment.moveForm( "div-comment-6476", "6476", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
         </li>
         <!-- #comment-## -->
         <li class="comment even thread-odd thread-alt depth-1" id="comment-6477">
          <article class="comment-body" id="div-comment-6477">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/10d8b4fd2668c81e813a682130fbcd55?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              laction
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6477">
              <time datetime="2014-12-26T14:03:43+00:00">
               2014/12/26 14:03
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             我运行到这一步就出现这样的错误了
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给laction" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6477#respond" onclick='return addComment.moveForm( "div-comment-6477", "6477", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
         </li>
         <!-- #comment-## -->
         <li class="comment odd alt thread-even depth-1" id="comment-6478">
          <article class="comment-body" id="div-comment-6478">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/10d8b4fd2668c81e813a682130fbcd55?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              laction
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6478">
              <time datetime="2014-12-26T14:12:08+00:00">
               2014/12/26 14:12
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             我知道了，是"NAME99"的错误，为什么能解释下么？我把他删除也可以做成
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给laction" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6478#respond" onclick='return addComment.moveForm( "div-comment-6478", "6478", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
         </li>
         <!-- #comment-## -->
         <li class="comment even thread-odd thread-alt depth-1" id="comment-6678">
          <article class="comment-body" id="div-comment-6678">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/c8db2ed5428c34421f5d0e2699d55324?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              CHEN M
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6678">
              <time datetime="2015-04-22T21:35:58+00:00">
               2015/04/22 21:35
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             问题同上，哪位大神可以来棒棒忙吗？
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给CHEN M" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6678#respond" onclick='return addComment.moveForm( "div-comment-6678", "6678", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
         </li>
         <!-- #comment-## -->
         <li class="comment odd alt thread-even depth-1" id="comment-6837">
          <article class="comment-body" id="div-comment-6837">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/68f680993ad155f9935095b39c8a52bb?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              laq
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6837">
              <time datetime="2015-09-02T17:07:03+00:00">
               2015/09/02 17:07
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             错误原因是maptools包依赖的gpclib不是开源软件，故无法使用。解决方法是安装先编译安装最新版geos软件（开源），然后在R中安装rgeos包，再重新安装maptools。希望对你有帮助！
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给laq" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6837#respond" onclick='return addComment.moveForm( "div-comment-6837", "6837", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
         </li>
         <!-- #comment-## -->
         <li class="pingback even thread-odd thread-alt depth-1" id="comment-6930">
          <div class="comment-body">
           Pingback：
           <a class="url" href="http://xieyan87.com/2015/11/r%e7%bb%98%e5%88%b6%e5%8c%97%e4%ba%ac%e5%9c%b0%e5%9b%be%ef%bc%8c%e5%b9%b6%e5%b1%95%e7%a4%ba%e4%b8%80%e4%ba%9b%e6%9c%89%e8%b6%a3%e7%9a%84%e7%a9%ba%e9%97%b4-i/" rel="external nofollow">
            R绘制北京地图，并展示一些有趣的空间 – I | 木下树的小白板儿
           </a>
          </div>
         </li>
         <!-- #comment-## -->
         <li class="comment odd alt thread-even depth-1 parent" id="comment-6964">
          <article class="comment-body" id="div-comment-6964">
           <footer class="comment-meta">
            <div class="comment-author vcard">
             <img src="http://sdn.geekzu.org/avatar/989f9690a824caa9bec4d4a438815f5b?s=74&amp;d=monsterid&amp;r=g"/>
             <b class="fn">
              大力
             </b>
             <span class="says">
              说道：
             </span>
            </div>
            <!-- .comment-author -->
            <div class="comment-metadata">
             <a href="http://cos.name/2014/08/r-maps-for-china/#comment-6964">
              <time datetime="2015-11-28T22:42:03+00:00">
               2015/11/28 22:42
              </time>
             </a>
            </div>
            <!-- .comment-metadata -->
           </footer>
           <!-- .comment-meta -->
           <div class="comment-content">
            <p>
             大神好，通过你的描述，我现在可以使用R绘画基本的地理地图，非常非常感谢。
             <br/>
             有个问题想请教下，我按照Kriging包的例子，画了一个Kriging预测图，这个预测图没有相应的省份，如何能够给Kriging预测图加上省份边界呀，谢谢。
            </p>
           </div>
           <!-- .comment-content -->
           <div class="reply">
            <a aria-label="回复给大力" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=6964#respond" onclick='return addComment.moveForm( "div-comment-6964", "6964", "respond", "10181" )' rel="nofollow">
             回复
            </a>
           </div>
          </article>
          <!-- .comment-body -->
          <ol class="children">
           <li class="comment even depth-2" id="comment-7109">
            <article class="comment-body" id="div-comment-7109">
             <footer class="comment-meta">
              <div class="comment-author vcard">
               <img src="http://sdn.geekzu.org/avatar/84b66c730feabc3a815dcbfa3adc8900?s=74&amp;d=monsterid&amp;r=g"/>
               <b class="fn">
                两宋风云
               </b>
               <span class="says">
                说道：
               </span>
              </div>
              <!-- .comment-author -->
              <div class="comment-metadata">
               <a href="http://cos.name/2014/08/r-maps-for-china/#comment-7109">
                <time datetime="2016-03-19T18:50:01+00:00">
                 2016/03/19 18:50
                </time>
               </a>
              </div>
              <!-- .comment-metadata -->
             </footer>
             <!-- .comment-meta -->
             <div class="comment-content">
              <p>
               知不知道如何画一个英文中国地图，把这几个省用灰色表示出来即可Heilongjiang ，Jiangsu， Zhejiang， Jiangxi， Shandong，
               <br/>
               Hubei ，Sichuan， Gansu 。。。。*（所有省名均用英文标注出来）
              </p>
             </div>
             <!-- .comment-content -->
             <div class="reply">
              <a aria-label="回复给两宋风云" class="comment-reply-link" href="http://cos.name/2014/08/r-maps-for-china/?replytocom=7109#respond" onclick='return addComment.moveForm( "div-comment-7109", "7109", "respond", "10181" )' rel="nofollow">
               回复
              </a>
             </div>
            </article>
            <!-- .comment-body -->
           </li>
           <!-- #comment-## -->
          </ol>
          <!-- .children -->
         </li>
         <!-- #comment-## -->
        </ol>
        <!-- .comment-list -->
        <div class="comment-respond" id="respond">
         <h3 class="comment-reply-title" id="reply-title">
          发表评论
          <small>
           <a href="http://cos.name/2014/08/r-maps-for-china/#respond" id="cancel-comment-reply-link" rel="nofollow" style="display:none;">
            取消回复
           </a>
          </small>
         </h3>
         <form action="http://cos.name/wp-comments-post.php" class="comment-form" id="commentform" method="post" novalidate="">
          <p class="comment-notes">
           <span id="email-notes">
            电子邮件地址不会被公开。
           </span>
           必填项已用
           <span class="required">
            *
           </span>
           标注
          </p>
          <p class="comment-form-comment">
           <label for="comment">
            评论
           </label>
           <textarea aria-required="true" cols="45" id="comment" maxlength="65525" name="comment" required="required" rows="8">
           </textarea>
          </p>
          <p class="comment-form-author">
           <label for="author">
            姓名
            <span class="required">
             *
            </span>
           </label>
          </p>
          <p class="comment-form-email">
           <label for="email">
            电子邮件
            <span class="required">
             *
            </span>
           </label>
          </p>
          <p class="comment-form-url">
           <label for="url">
            站点
           </label>
          </p>
          <p class="form-submit">
          </p>
          <p style="display: none;">
          </p>
          <p style="display: none;">
          </p>
         </form>
        </div>
        <!-- #respond -->
       </div>
       <!-- #comments -->
      </div>
      <!-- #content -->
     </div>
     <!-- #primary -->
     <div class="sidebar-container" id="tertiary" role="complementary">
      <div class="sidebar-inner">
       <div class="widget-area">
        <aside class="widget widget_text" id="text-3">
         <h3 class="widget-title">
          关注统计之都
         </h3>
         <div class="textwidget">
          <ul>
           <li>
            新浪微博
            <a href="http://weibo.com/cosname">
             @统计之都
            </a>
           </li>
           <li>
            人人网
            <a href="http://renren.com/cosname">
             @统计之都
            </a>
           </li>
           <li>
            Twitter
            <a href="http://twitter.com/cos_name">
             @cos_name
            </a>
           </li>
          </ul>
         </div>
        </aside>
        <aside class="widget widget_text" id="text-6">
         <h3 class="widget-title">
          微信公众平台
         </h3>
         <div class="textwidget">
          <img src="http://cos.name/wp-content/uploads/2013/04/qrcode-8cm.jpg"/>
          <p style="font-size:12px;margin-left:15px">
           微信号 CapStat
          </p>
          <p>
           我们将第一时间向您推送主站和论坛的精彩内容，以及统计之都的线下活动、竞赛、培训和会议信息。
          </p>
         </div>
        </aside>
        <aside class="widget widget_text" id="text-8">
         <h3 class="widget-title">
          站内导航
         </h3>
         <div class="textwidget">
          <ul>
           <li class="page_item">
            <a href="http://cos.name/cn/">
             中文论坛
            </a>
           </li>
           <li class="page_item">
            <a href="http://cos.name/videos/">
             视频
            </a>
           </li>
           <li class="page_item">
            <a href="http://cos.name/salon/">
             统计沙龙
            </a>
           </li>
           <li class="page_item">
            <a href="http://cos.name/books/">
             图书出版
            </a>
           </li>
           <li class="page_item">
            <a href="http://cos.name/training/">
             教育培训
            </a>
           </li>
           <li class="page_item">
            <a href="http://cos.name/about/">
             关于我们
            </a>
           </li>
           <li class="page_item">
            <a href="http://cos.name/donate/">
             捐赠
            </a>
           </li>
           <li class="page_item">
            <a href="http://cos.name/chinar/">
             R语言会议
            </a>
           </li>
          </ul>
         </div>
        </aside>
        <aside class="widget widget_links" id="linkcat-2">
         <h3 class="widget-title">
          友情链接
         </h3>
         <ul class="xoxo blogroll">
          <li>
           <a href="http://stat.ruc.edu.cn" target="_blank" title="中国人民大学统计学院网站">
            中国人民大学统计学院
           </a>
          </li>
          <li>
           <a href="http://rucdmc.net">
            中国人民大学数据挖掘中心
           </a>
          </li>
          <li>
           <a href="http://birc.gsm.pku.edu.cn/" target="_blank">
            北京大学商务智能研究中心
           </a>
          </li>
          <li>
           <a href="http://sam.cufe.edu.cn/" target="_blank" title="中央财经大学统计与数学学院网站">
            中央财经大学统计与数学学院
           </a>
          </li>
          <li>
           <a href="http://tjx.cueb.edu.cn/" target="_blank" title="首都经济贸易大学统计学院网站">
            首经贸统计学院
           </a>
          </li>
          <li>
           <a href="http://www.shookr.com/">
            数客网大数据社区
           </a>
          </li>
          <li>
           <a href="http://www.xueqing.tv/" target="_blank" title="数据科学在线学习平台">
            雪晴数据网
           </a>
          </li>
          <li>
           <a href="http://iera.name/" target="_blank" title="IERA是一个旨在普及、传播和增进工业工程知识的非营利性网站">
            IERA（直通IE）
           </a>
          </li>
         </ul>
        </aside>
        <aside class="widget widget_categories" id="categories-2">
         <h3 class="widget-title">
          全部分类
         </h3>
         <label class="screen-reader-text" for="cat">
          全部分类
         </label>
         <select class="postform" id="cat" name="cat">
          <option value="-1">
           选择分类目录
          </option>
          <option class="level-0" value="925">
           cos访谈  (4)
          </option>
          <option class="level-0" value="659">
           图书出版  (5)
          </option>
          <option class="level-0" value="379">
           数学方法  (14)
          </option>
          <option class="level-1" value="381">
           分析与代数  (1)
          </option>
          <option class="level-1" value="380">
           概率论  (9)
          </option>
          <option class="level-1" value="382">
           随机过程  (5)
          </option>
          <option class="level-0" value="210">
           数据分析  (81)
          </option>
          <option class="level-1" value="203">
           多元统计  (3)
          </option>
          <option class="level-1" value="42">
           数据挖掘与机器学习  (42)
          </option>
          <option class="level-1" value="36">
           生物与医学统计  (17)
          </option>
          <option class="level-1" value="35">
           计量经济学  (4)
          </option>
          <option class="level-1" value="296">
           金融统计  (3)
          </option>
          <option class="level-1" value="303">
           风险精算  (7)
          </option>
          <option class="level-0" value="177">
           模型专题  (15)
          </option>
          <option class="level-1" value="38">
           回归分析  (10)
          </option>
          <option class="level-1" value="41">
           时间序列  (2)
          </option>
          <option class="level-0" value="784">
           每周精选  (24)
          </option>
          <option class="level-1" value="183">
           可视化  (9)
          </option>
          <option class="level-0" value="967">
           沙龙纪要  (3)
          </option>
          <option class="level-0" value="18">
           经典理论  (46)
          </option>
          <option class="level-1" value="37">
           抽样调查  (3)
          </option>
          <option class="level-1" value="4">
           统计推断  (26)
          </option>
          <option class="level-1" value="236">
           试验设计  (7)
          </option>
          <option class="level-1" value="39">
           非参数统计  (3)
          </option>
          <option class="level-0" value="1">
           统计之都  (279)
          </option>
          <option class="level-1" value="884">
           中国R会议  (2)
          </option>
          <option class="level-1" value="885">
           中国R语言会议  (5)
          </option>
          <option class="level-1" value="446">
           出国留学  (3)
          </option>
          <option class="level-1" value="179">
           推荐文章  (90)
          </option>
          <option class="level-1" value="3">
           新闻通知  (75)
          </option>
          <option class="level-1" value="263">
           统计刊物  (10)
          </option>
          <option class="level-1" value="174">
           网站导读  (40)
          </option>
          <option class="level-1" value="204">
           职业事业  (51)
          </option>
          <option class="level-1" value="213">
           高校课堂  (9)
          </option>
          <option class="level-0" value="178">
           统计计算  (28)
          </option>
          <option class="level-1" value="40">
           优化与模拟  (15)
          </option>
          <option class="level-1" value="43">
           贝叶斯方法  (6)
          </option>
          <option class="level-0" value="378">
           软件应用  (116)
          </option>
          <option class="level-1" value="44">
           统计图形  (36)
          </option>
          <option class="level-1" value="110">
           统计软件  (83)
          </option>
         </select>
        </aside>
        <aside class="widget widget_recent_comments" id="recent-comments-2">
         <h3 class="widget-title">
          最新评论
         </h3>
         <ul id="recentcomments">
          <li class="recentcomments">
           <span class="comment-author-link">
            fineboom
           </span>
           发表在《
           <a href="http://cos.name/2016/06/use-shiny-fleetly-set-up-visual-prototype-system/#comment-7317">
            利用shiny包快速搭建可视化原型系统
           </a>
           》
          </li>
          <li class="recentcomments">
           <span class="comment-author-link">
            胡家新
           </span>
           发表在《
           <a href="http://cos.name/2016/06/r%e8%af%ad%e5%8d%83%e5%af%bb%e7%ac%ac%e4%b8%89%e6%9c%9f%ef%bc%9a%e5%bc%a0%e6%97%a0%e5%bf%8c%e7%a9%b6%e7%ab%9f%e7%88%b1%e8%b0%81%ef%bc%9f/#comment-7316">
            R语千寻第三期：张无忌究竟爱谁？
           </a>
           》
          </li>
          <li class="recentcomments">
           <span class="comment-author-link">
            <a class="url" href="http://www.zijiacha.com/category.php?id=6" rel="external nofollow">
             南糯山普洱茶
            </a>
           </span>
           发表在《
           <a href="http://cos.name/2016/06/r%e8%af%ad%e5%8d%83%e5%af%bb%e7%ac%ac%e4%b8%89%e6%9c%9f%ef%bc%9a%e5%bc%a0%e6%97%a0%e5%bf%8c%e7%a9%b6%e7%ab%9f%e7%88%b1%e8%b0%81%ef%bc%9f/#comment-7315">
            R语千寻第三期：张无忌究竟爱谁？
           </a>
           》
          </li>
          <li class="recentcomments">
           <span class="comment-author-link">
            J
           </span>
           发表在《
           <a href="http://cos.name/2016/05/value-of-the-reputation-from-the-data/#comment-7314">
            数据告诉你：高信誉的卖家应该收高价，还是收低价？
           </a>
           》
          </li>
          <li class="recentcomments">
           <span class="comment-author-link">
            <a class="url" href="http://gg" rel="external nofollow">
             Hilda
            </a>
           </span>
           发表在《
           <a href="http://cos.name/2013/01/drawing-map-in-r-era/#comment-7311">
            R时代，你要怎样画地图？
           </a>
           》
          </li>
         </ul>
        </aside>
        <aside class="widget widget_rss" id="rss-282869971">
         <h3 class="widget-title">
          <a class="rsswidget" href="http://cos.name/cn/topics/feed/">
           <img src="http://cos.name/wp-includes/images/rss.png"/>
          </a>
          <a class="rsswidget" href="http://cos.name/cn/topics/feed/">
           中文论坛新帖
          </a>
         </h3>
         <ul>
          <li>
           <a class="rsswidget" href="http://cos.name/cn/topic/417372/">
            处理时间数据和产生时间序列的问题
           </a>
          </li>
          <li>
           <a class="rsswidget" href="http://cos.name/cn/topic/6790/">
            《统计陷阱》下载 （How to lie with statistics）
           </a>
          </li>
          <li>
           <a class="rsswidget" href="http://cos.name/cn/topic/818/">
            统计学的世界（第五版）
           </a>
          </li>
          <li>
           <a class="rsswidget" href="http://cos.name/cn/topic/16574/">
            class(x) 返回值值是AsIs,AsIs代表什么，有什么用处？
           </a>
          </li>
          <li>
           <a class="rsswidget" href="http://cos.name/cn/topic/417366/">
            如何用R绘制一个分类算法的决策规则
           </a>
          </li>
         </ul>
        </aside>
        <aside class="widget widget_text" id="text-2">
         <h3 class="widget-title">
          登录/RSS
         </h3>
         <div class="textwidget">
          <ul>
           <li>
            <a href="http://cos.name/wp-admin/">
             登录
            </a>
           </li>
           <li>
            <a href="http://cos.name/feed/" title="使用 RSS 2.0 同步站点内容">
             文章
             <abbr title="Really Simple Syndication">
              RSS
             </abbr>
            </a>
           </li>
           <li>
            <a href="http://cos.name/comments/feed/" title="RSS 上的最近评论">
             评论
             <abbr title="Really Simple Syndication">
              RSS
             </abbr>
            </a>
           </li>
          </ul>
         </div>
        </aside>
       </div>
       <!-- .widget-area -->
      </div>
      <!-- .sidebar-inner -->
     </div>
     <!-- #tertiary -->
    </div>
    <!-- #main -->
    <footer class="site-footer" id="colophon" role="contentinfo">
     <div class="site-info">
      版权所有 © 2014 统计之都 | 由
      <a href="http://wordpress.org/">
       WordPress
      </a>
      构建 | 主题修改自
      <a href="http://wordpress.org/themes/twentythirteen">
       Twenty Thirteen
      </a>
     </div>
     <!-- .site-info -->
    </footer>
    <!-- #colophon -->
   </div>
   <!-- #page -->
   <p style="margin:0;padding:0;height:1px;overflow:hidden;">
    <a href="http://www.wumii.com/widget/relatedItems" style="border:0;">
     <img src="http://static.wumii.cn/images/pixel.png"/>
    </a>
   </p>
  </div>
 </body>
</html>